;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Copyright (c) Microsoft Corporation.  All rights reserved.
;;
;; Module Name:
;;
;;   thunklog.tpl
;;
;; Abstract:
;;
;;   This template builds the WOW64 logging data
;;
;; Author:
;;
;;   1-Oct-99 SamerA
;;
;; Revision History:
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


[Macros]
TemplateName=WhLogApi
NumArgs=1
Begin=
@NoFormat(
/*
 *  Genthunk generated code: Do Not Modify
 *  Logging information generated by parsing the thunked APIs
 *
 */
#include <nt.h>
#include <nt32.h>
#include <wow64thk.h>

typedef PULONG_PTR U;
)

CONST PULONG_PTR @MArg(1)[] = { @NL
@Template(Wow64ThunkDebugInfo)
NULL, NULL @NL
}; @NL
End=


[Code]

TemplateName=whwin32log
CGenBegin=
@WhLogApi(Win32ThunkDebugInfo)
CGenEnd=

TemplateName=whconlog
CGenBegin=
@WhLogApi(ConsoleThunkDebugInfo)
CGenEnd=

TemplateName=whbaselog
CGenBegin=
@WhLogApi(BaseThunkDebugInfo)
CGenEnd=

TemplateName=whnt32log
CGenBegin=
@WhLogApi(NtThunkDebugInfo)
CGenEnd=



[Types]

TemplateName=default
Locals=
(U)"@ArgName", (U)TypeHex, @NL
End=

TemplateName=PIO_STATUS_BLOCK
IndLevel=0
Direction=OUT
Locals=
(U)"@ArgName", (U)TypeIoStatusBlockOut, @NL
End=

TemplateName=PHANDLE
IndLevel=0
Direction=OUT
Locals=
(U)"@ArgName", (U)TypePHandleOut, @NL
End=

TemplateName=PUNICODE_STRING
IndLevel=0
Direction=IN
Locals=
(U)"@ArgName", (U)TypeUnicodeStringIn, @NL
End=

TemplateName=PULONG
IndLevel=0
Direction=IN OUT
Locals=
(U)"@ArgName", (U)TypePULongPtrInOut, @NL
End=

TemplateName=PSIZE_T
IndLevel=0
Direction=IN OUT
Locals=
(U)"@ArgName", (U)TypePULongPtrInOut, @NL
End=

TemplateName=PVOID
IndLevel=1
Direction=IN OUT
Locals=
(U)"@ArgName", (U)TypePULongPtrInOut, @NL
End=

TemplateName=PULONG
Also=PLCID
Also=PNTSTATUS
Also=PBOOLEAN
IndLevel=0
Direction=OUT
Locals=
(U)"@ArgName", (U)TypePULongOut, @NL
End=


TemplateName=POBJECT_ATTRIBUTES
IndLevel=0
Direction=IN
Locals=
(U)"@ArgName", (U)TypeObjectAttributesIn, @NL
End=

TemplateName=POINT
IndLevel=0
Direction=IN
Locals=
(U)"@ArgName.x", (U)TypeHex, @NL
(U)"@ArgName.y", (U)TypeHex, @NL
End=

TemplateName=SIZEL
Also=SIZE
Also=POINTL
Alsp=POINT
IndLevel=0
Direction=IN
Locals=
(U)"@ArgName.cx", (U)TypeHex, @NL
(U)"@ArgName.cy", (U)TypeHex, @NL
End=

TemplateName=CLIENT_ID
IndLevel=0
Direction=IN
Locals=
(U)"@ArgName.UniqueProcess", (U)TypeHex, @NL
(U)"@ArgName.UniqueThread", (U)TypeHex, @NL
End=

TemplateName=LPWSTR
Also=PWSTR
IndLevel=0
Direction=IN
Locals=
(U)"@ArgName", (U)TypePwstrIn, @NL
End=

TemplateName=LPRECT
Also=PRECT
IndLevel=0
Direction=IN
Locals=
(U)"@ArgName", (U)TypePRectIn, @NL
End=

TemplateName=PLARGE_INTEGER
Also=PULARGE_INTEGER
IndLevel=0
Direction=IN
Locals=
(U)"@ArgName", (U)TypePLargeIntegerIn, @NL
End=


[IFunc]
TemplateName=Wow64ThunkDebugInfo
Begin=
@NL
(U)"@ApiName", (U)@ApiNum, (U)(@ArgSize/4), @NL
@Types(Locals) @NL
End=
